package com.vtmer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vtmer.entity.IntervStatus;
import com.vtmer.entity.Progress;

import java.util.List;

/**
 * @author Xinjie
 * @create 2022/9/26 19:02
 */
public interface ProgressService extends IService<Progress> {

    void insertProgress(Progress progress);

    /**
     * 根据用户id获取考核流程
     *
     * @param uid 用户id
     * @return 返回获取到的流程信息
     */
    Progress getProgressByUid(int uid);

    /**
     * 根据学号获取考核流程
     *
     * @param studId 学号
     * @return 返回获取到的流程信息
     */
    Progress getProgressByStudId(long studId);

    /**
     * 管理员获取面试流程列表
     *
     * @return 面试流程列表
     */
    List<Progress> getProgressList();

    /**
     * 管理根据组别获取面试流程列表
     *
     * @param groups 组别
     * @return 面试流程列表
     */
    List<Progress> getProgressListByGroups(String groups);

    /**
     * 管理员更新面试状态为已报名
     *
     * @param studId 学号
     * @return 面试流程列表
     */
    Progress updateIntervStatusByStudId(String studId);

    /**
     * 通过学号更新面试流程
     *
     * @param studId
     * @param state
     * @return
     */
    IntervStatus updateIntervStatusByStudId(String studId, int state);

    /**
     * 管理员更新面试结果为通过
     *
     * @param studId 学号
     * @return 面试流程列表
     */
    Progress updateIntervResultByStudId(String studId);

    /**
     * 管理员更新一轮结果为通过
     *
     * @param studId 学号
     * @return 面试流程列表
     */
    Progress updateFirAssessmResultByStudId(String studId);

    /**
     * 管理员更新二轮结果为通过
     *
     * @param studId 学号
     * @return 面试流程列表
     */
    Progress updateSecAssessmResultByStudId(String studId);

    /**
     * 管理管淘汰成员
     *
     * @param studId 学号
     * @param fail   状态
     * @return
     */
    Progress updateFailAssessmResultByStudId(String studId, int fail);
}
